package beans;

import dao.RecursoDAO;
import dao.RecursoDAOHibernate;
import java.awt.event.ActionEvent;
import java.io.IOException;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.context.FacesContext;
import modelo.Recurso;
import org.primefaces.event.DragDropEvent;

@Named(value = "listarBean")
@SessionScoped
public class listarBean implements Serializable {

    private List<Recurso> listaRecurso;
    private List<Recurso> droppedRecurso;
    private Recurso recursoSelecionado;

    public listarBean() {
        this.listaRecurso = new ArrayList<Recurso>();
        this.droppedRecurso = new ArrayList<Recurso>();
        this.recursoSelecionado = new Recurso();
    }

    public List<Recurso> getListaRecurso() {
        RecursoDAO recursoDAO = new RecursoDAOHibernate();
        this.listaRecurso = recursoDAO.listar();
        return listaRecurso;
    }

    public List<Recurso> getDroppedRecurso() {
        return droppedRecurso;
    }

    public Recurso getRecursoSelecionado() {
        return recursoSelecionado;
    }

    public void setRecursoSelecionado(Recurso recursoSelecionado) {
        this.recursoSelecionado = recursoSelecionado;
    }

    public void onRecursoDrop(DragDropEvent ddEvent) {
        Recurso recurso = ((Recurso) ddEvent.getData());
        this.droppedRecurso.add(recurso);
    }

    public void btnLimparRecursoDrop(ActionEvent actionEvent) throws IOException {
        this.droppedRecurso = new ArrayList<Recurso>();
        FacesContext.getCurrentInstance().getExternalContext().redirect(
                "http://localhost:8080/sistema-gestao-jsf/faces/views/listarRecurso.xhtml");
    }

}
